# 使用官方 Go 镜像作为构建环境
FROM docker.1ms.run/golang:1.21-alpine AS builder

# 设置工作目录
WORKDIR /app

# 安装 git（某些 Go 模块可能需要）
RUN apk add --no-cache git

# 复制 go mod 文件
COPY src/go.mod src/go.sum ./

# 下载依赖项
RUN go mod download

# 复制源代码
COPY src/ .

# 构建应用程序
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o mysql-mcp-server .

# 使用轻量级的基础镜像
FROM docker.1ms.run/alpine:latest

# 安装必要的 CA 证书
RUN apk --no-cache add ca-certificates

# 创建非 root 用户
RUN adduser -D -s /bin/sh mcpuser

# 设置工作目录
WORKDIR /home/mcpuser

# 从构建阶段复制二进制文件
COPY --from=builder /app/mysql-mcp-server .

# 更改文件所有者
RUN chown mcpuser:mcpuser mysql-mcp-server

# 切换到非 root 用户
USER mcpuser

# 暴露端口（如果使用 HTTP 传输）
# EXPOSE 8080

# 运行应用程序
CMD ["./mysql-mcp-server"] 